package thread;

public class SyncDemo2 {
    public static void main(String[] args) {

        Shop shop1 = new Shop();
        Shop shop2 = new Shop();
//        Thread t1 = new Thread("传奇") {
//            @Override
//            public void run() {
//                shop1.buy();
//            }
//        };
//        Thread t2 = new Thread("克晶") {
//            @Override
//            public void run() {
//                shop2.buy();
//            }
//        };

//        Runnable r1 = new Runnable() {
//            @Override
//            public void run() {
//                shop1.buy();
//            }
//        };
//        Thread t1 = new Thread(r1);
//        Runnable r2 = new Runnable() {
//            @Override
//            public void run() {
//                shop2.buy();
//            }
//        };
//        Thread t2 = new Thread(r2);

//        Runnable r1 = () ->
//                shop1.buy();
//
//
//        Thread t1 = new Thread(r1);
//        Runnable r2 = () ->
//                shop2.buy();
//
//
//        Thread t2 = new Thread(r2);


//        Thread t1 = new Thread(() ->
//                shop1.buy());
//
//
//        Thread t2 = new Thread(() ->
//                shop2.buy());

        Thread t1 = new Thread(shop1::buy);

        Thread t2 = new Thread(shop2::buy);

        t1.start();
        t2.start();

    }
}

class Shop {
    public void buy() {
        Thread t = Thread.currentThread();
        try {
            System.out.println(t.getName() + "正在挑衣服");
            Thread.sleep(5000);

            synchronized (this) {
                System.out.println(t.getName() + "正在试衣服");
                Thread.sleep(5000);
            }
            System.out.println(t.getName() + "结账离开");
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

    }
}